home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
U-User Group
/
(k)u9.d64
/
plotter.procs
< prev
next >
Wrap
Text File
|
2007-02-28
|
3KB
|
159 lines
9000 //
9001 // OPEN FILE TO PRINT
9002 //
9003 PROC PRTOPEN CLOSED
9004 OPEN FILE 21,"",UNIT 6,1,WRITE
9005 ENDPROC
9006 //
9007 // OPEN FILE TO PLOT
9008 //
9009 PROC PLOPEN CLOSED
9010 OPEN FILE 21,"",UNIT 6,1,WRITE
9011 ENDPROC
9012 //
9013 //
9014 // SET COLOURS
9015 //
9016 PROC BLACK CLOSED
9017 CONTROL(22,"0")
9018 ENDPROC BLACK
9019 //
9020 PROC BLUE CLOSED
9021 CONTROL(22,"1")
9022 ENDPROC BLUE
9023 //
9024 PROC GREEN CLOSED
9025 CONTROL(22,"2")
9026 ENDPROC GREEN
9027 //
9028 PROC RED CLOSED
9029 CONTROL(22,"3")
9030 ENDPROC RED
9031 //
9032 // SET CHARACTER SIZE
9033 //
9034 PROC EIGHTY CLOSED
9035 CONTROL(23,"0")
9036 ENDPROC EIGHTY
9037 //
9038 PROC FORTY CLOSED
9039 CONTROL(23,"1")
9040 ENDPROC FORTY
9041 //
9042 PROC TWENTY CLOSED
9043 CONTROL(23,"2")
9044 ENDPROC TWENTY
9045 //
9046 PROC TEN CLOSED
9047 CONTROL(23,"3")
9048 ENDPROC TEN
9049 //
9050 // SET ROTATION
9051 //
9052 PROC NORMAL CLOSED
9053 CONTROL(24,"0")
9054 ENDPROC NORMAL
9055 //
9056 PROC ROTATE CLOSED
9057 CONTROL(24,"1")
9058 ENDPROC ROTATE
9059 //
9060 // SELECT BROKEN LINE
9061 //
9062 PROC BROKEN(A) CLOSED
9063 CONTROL(25,CHR$((A)+48))
9064 ENDPROC BROKEN
9065 //
9066 // SELECT UPPER OR LOWER CASE
9067 //
9068 PROC UPPER CLOSED
9069 CONTROL(26,"1")
9070 ENDPROC UPPER
9071 //
9072 PROC LOWER CLOSED
9073 CONTROL(26,"0")
9074 ENDPROC LOWER
9075 //
9076 // RESET PLOTTER
9077 //
9078 PROC RESET CLOSED
9079 OPEN FILE 27,"",UNIT 6,7,WRITE
9080 PRINT FILE 27: ""+CHR$(13),
9081 CLOSE FILE 27
9082 ENDPROC RESET
9083 //
9084 // PLOTTER CONTROL MODULE
9085 //
9086 PROC CONTROL(FILE',D$) CLOSED
9087 Z:=ZONE
9088 ZONE (0)
9089 OPEN FILE FILE',"",UNIT 6,(FILE' MOD 20),WRITE
9090 PRINT FILE FILE': D$+CHR$(13),
9091 CLOSE FILE FILE'
9092 ZONE (Z)
9093 ENDPROC CONTROL
9094 //
9095 // DRAW TO POINT X,Y
9096 //
9097 PROC DRAW(X,Y) CLOSED
9098 DIM X1$ OF 5, Y1$ OF 5, D$ OF 20
9099 STR(X,X1$)
9100 STR(Y,Y1$)
9101 D$:="J "+X1$+" "+Y1$+""+CHR$(13)
9102 PRINT FILE 21: D$,
9103 ENDPROC DRAW
9104 //
9105 // MOVE TO X,Y (PEN UP)
9106 //
9107 PROC MOVE(X,Y) CLOSED
9108 DIM X1$ OF 5, Y1$ OF 5, D$ OF 15
9109 STR(X,X1$)
9110 STR(Y,Y1$)
9111 D$:="R "+X1$+" "+Y1$+""+CHR$(13)
9112 PRINT FILE 21: D$,
9113 ENDPROC MOVE
9114 //
9115 //
9116 // RETURNS STRING REPRESENTATION
9117 // OF NUMERIC VARIABLE IN 'NUM'
9118 // STRING RETURNED IN 'REF A$'
9119 // USAGE: STRING(NUM,REF A$)
9120 // HANDLES ONLY INTEGERS (+ OR -)
9121 //
9122 PROC STR(NUM,REF A$) CLOSED
9123 SN:=SGN(NUM)
9124 NUM:=ABS(NUM)
9125 A$:="0"
9126 TEST:=100000000; SUB:=1
9127 REPEAT
9128 IF TEST>0 THEN
9129 DIGIT:=NUM DIV TEST
9130 NUM:=NUM MOD TEST
9131 TEST:=TEST/10
9132 ENDIF
9133 UNTIL DIGIT<>0 OR TEST<1
9134 // DIGIT CONTAINS FIRST DIGIT
9135 // NUM IS READY TO CHECK AGAIN
9136 WHILE TEST>.01 DO
9137 A$(SUB):=CHR$(DIGIT+ORD("0"))
9138 SUB:+1
9139 DIGIT:=NUM DIV TEST
9140 NUM:=NUM MOD TEST
9141 TEST:=TEST/10
9142 ENDWHILE
9143 IF SN=-1 THEN A$:="-"+A$
9144 ENDPROC STR
9145 //
9146 // SET NEW ORIGIN
9147 //
9148 PROC ORIGIN CLOSED
9149 PRINT FILE 21: "I"
9150 ENDPROC ORIGIN
9151 //
9152 // HOME PLOTTER
9153 //
9154 PROC HOME' CLOSED
9155 PRINT FILE 21: "H"
9156 ENDPROC HOME'
9157 //